Emotion = {
	url : path + "/images/emotion/",
	data : {
		0 : "微笑",
		1 : "撇嘴",
		2 : "色",
		3 : "发呆",
		4 : "得意",
		5 : "流泪",
		6 : "害羞",
		7 : "闭嘴",
		8 : "睡",
		9 : "大哭",
		10 : "尴尬",
		11 : "发怒",
		12 : "调皮",
		13 : "呲牙",
		14 : "惊讶",
		15 : "难过",
		16 : "酷",
		17 : "冷汗",
		18 : "抓狂",
		19 : "吐",
		20 : "偷笑",
		21 : "可爱",
		22 : "白眼",
		23 : "傲慢",
		24 : "饥饿",
		25 : "困",
		26 : "惊恐",
		27 : "流汗",
		28 : "憨笑",
		29 : "大兵",
		30 : "奋斗",
		31 : "咒骂",
		32 : "疑问",
		33 : "嘘",
		34 : "晕",
		35 : "折磨",
		36 : "衰",
		37 : "骷髅",
		38 : "敲打",
		39 : "再见",
		40 : "擦汗",
		41 : "抠鼻",
		42 : "鼓掌",
		43 : "糗大了",
		44 : "坏笑",
		45 : "左哼哼",
		46 : "右哼哼",
		47 : "哈欠",
		48 : "鄙视",
		49 : "委屈",
		50 : "快哭了",
		51 : "阴险",
		52 : "亲亲",
		53 : "吓",
		54 : "可怜",
		55 : "菜刀",
		56 : "西瓜",
		57 : "啤酒",
		58 : "篮球",
		59 : "乒乓",
		60 : "咖啡",
		61 : "饭",
		62 : "猪头",
		63 : "玫瑰",
		64 : "凋谢",
		65 : "示爱",
		66 : "爱心",
		67 : "心碎",
		68 : "蛋糕",
		69 : "闪电",
		70 : "炸弹",
		71 : "刀",
		72 : "足球",
		73 : "瓢虫",
		74 : "便便",
		75 : "月亮",
		76 : "太阳",
		77 : "礼物",
		78 : "拥抱",
		79 : "强",
		80 : "弱",
		81 : "握手",
		82 : "胜利",
		83 : "抱拳",
		84 : "勾引",
		85 : "拳头",
		86 : "差劲",
		87 : "爱你",
		88 : "NO",
		89 : "OK",
		90 : "爱情",
		91 : "飞吻",
		92 : "跳跳",
		93 : "发抖",
		94 : "怄火",
		95 : "转圈",
		96 : "磕头",
		97 : "回头",
		98 : "跳绳",
		99 : "挥手",
		100 : "激动",
		101 : "街舞",
		102 : "献吻",
		103 : "左太极",
		104 : "右太极"
	},
	ext : ".gif",
	replaceEmoji : function(f) {
		var b, h, d = Emotion, a = d.url, c = d.ext, g = d.data;
		for (b in g) {
			h = new RegExp("/" + g[b], "g"), f = f.replace(h,
					'<img src="' + a + b + c + '" alt="mo-' + g[b] + '"/>')
					.replace(/\n/g, "<br />")
		}
		return f;
	},

	replaceInput : function(a) {
		return a.replace(/<img.*?alt=["]{0,1}mo-([^"\s]*).*?>/ig, "/$1")
				.replace(/<br.*?>/ig, "\n").replace(/<.*?>/g, "").replace(
						/&amp;/gi, "&").replace(/&quot;/gi, '"').replace(
						/&nbsp;/gi, " ").replace(/&copy;/gi, "©").replace(
						/&reg;/gi, "®")
	},
	getSelection : function() {
		return document.selection ? document.selection : window.getSelection()
	},
	getRange : function(c) {
		var d = Emotion;
		var a = d.getSelection();
		if (!a) {
			return null
		}
		var b = a.getRangeAt ? a.rangeCount ? a.getRangeAt(0) : null : a
				.createRange();
		return b ? c ? d.containsRange(c, b) ? b : null : b : null
	},
	contains : function(c, a, d) {
		if (!d && c === a) {
			return !1
		}
		if (c.compareDocumentPosition) {
			var b = c.compareDocumentPosition(a);
			if (b == 20 || b == 0) {
				return !0
			}
		} else {
			if (c.contains(a)) {
				return !0
			}
		}
		return !1
	},
	containsRange : function(c, a) {
		var d = Emotion;
		var b = a.commonAncestorContainer || a.parentElement
				&& a.parentElement() || null;
		return b ? d.contains(c, b, !0) : !1
	},
	saveRange : function() {
		Emotion._lastRange = Emotion.getRange()
	},
	resotreRange : function() {
		var c = Emotion._lastRange;
		var b = Emotion;
		if (c) {
			var a = b.getSelection();
			if (a.addRange) {
				a.removeAllRanges(), a.addRange(c)
			} else {
				var d = b.getRange();
				d.setEndPoint("EndToEnd", c), d.setEndPoint("StartToStart", c),
						d.select()
			}
		}
		return this
	},
	focus : function(c) {
		$(".editArea div").focus();
		var b;
		if (c && (b = Emotion._lastRange)) {
			var d = Emotion.getSelection();
			if (d.addRange) {
				d.removeAllRanges();
				d.addRange(b)
			} else {
				var a = Emotion.getRange();
				a.setEndPoint("EndToEnd", b);
				a.setEndPoint("StartToStart", b);
				a.select()
			}
		}
		return Emotion.resotreRange()
	},
	insertHTML : function(d) {
		Emotion.focus(1);
		var b = Emotion.getRange();
		if (b.createContextualFragment) {
			d += '<img style="width:1px;height:1px;">';
			var f = b.createContextualFragment(d), a = f.lastChild;
			b.deleteContents(), b.insertNode(f), b.setEndAfter(a), b
					.setStartAfter(a);
			var c = Emotion.getSelection();
			c.removeAllRanges(), c.addRange(b), document.execCommand("Delete",
					!1, null)
		} else {
			b.pasteHTML(d);
			b.collapse(!1);
			b.select()
		}
		Emotion.saveRange();
		return this
	}
};